Recently, there has been increasing demand for a remote monitoring control system that controls on-site devices as well as obtains videos and voice information in remote areas for plant production management and works under severe environments difficult for people to enter. In this case, it is possible to use, for example, a wide area network (WAN) such as the Internet that has been developed as a communication infrastructure for communications with remote areas.
Currently, as a major communication protocol that communicates via the WAN, a transmission control protocol (TCP) and a user datagram protocol (UDP) are used. In transmitting data from one terminal to another terminal, the TCP realizes highly reliable communications by guaranteeing an order in a data stream and retransmitting defective data. On the other hand, for applications requiring no highly reliable services, the UDP, a communication protocol with more emphasis on low-delay communications than reliability, is used. The UDP enables high-speed, low-delay transmission instead of retransmission or guarantee of the order in the data stream.
Meanwhile, as a protocol for distributing stream data such as videos and voices on a real-time basis, there is a real-time transport protocol (RTP). The RTP is a standardized system as a protocol for transmitting a real-time stream, and allows a time relation among data to be obtained on a receiving terminal side by adding time information to packet data to be transmitted. Video and voice data can be reproduced even when the data are partially defective. Therefore, lost or delayed packets are ignored on a receiving side and data can be reproduced using only packets delivered at a time expected on the receiving side. The RTP can be combined with both of the TCP and UDP, but the TCP guarantees the order in the data stream by retransmission. Therefore, in most cases, the RTP is used in combination with the UDP.
However, it is not possible to avoid a loss of a data packet caused in passing through a network only with the RTP. Particularly in an environment where a communication quality of a line is relatively poor, there is a problem that high-quality stream data may not be reproduced.
Thus, as a method for improving the reliability in data transmission, there has been proposed a system for imparting forward error correction (FEC) codes to data to be sent for transmission. Imparting the FEC codes for transmission can restore the loss of the data packet solely on the receiving side. Therefore, even when the communication quality of the line is relatively poor, low-delay, highly reliable communications can be realized. An FEC system in packet transmission calculates error correction codes in a plurality of packet units. As the FEC codes, parity codes, reed-solomon codes, and the like are used.
Generally in data transmission by internet protocol (IP) packets, data are packetized in a certain size based on a maximum transmission unit (MTU) of a communication environment for transmission. In a case where the FEC codes of the data packetized in a certain size are calculated, it is necessary to acquire a large number of original data packets included in an FEC encoded block in order to obtain sufficient burst loss resistance. However, when the number of packets to be input is small, a larger number of original data packets included in the FEC encoded block leads to an increase in delay in FEC calculation. Devised in PTL 1 is a system that enables calculation of the FEC codes without an increase in delay even at a low data rate by reconfiguring an FEC block by dividing a packet when a data amount of original data is small.